package com.tt.lcd.qunyangGPRS.biz.activity.renshen;

import android.content.Context;

import com.tt.lcd.qunyangGPRS.dao.renshen.XiaoqunyangDao;
import com.tt.lcd.qunyangGPRS.entity.XiaoQunYnag;
import com.tt.lcd.qunyangGPRS.utils.Register;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;

public class QunyangInfo {
	private Context mContext;
	public QunyangInfo(Context context){
		mContext=context;
	}
	// 获得母猪总数
	public int getPigCout() {
		int c = 0;

		ArrayList<byte[]> list = new XiaoqunyangDao(mContext).select();

		for (int i = 0; i < list.size(); i++) {
			if (list.get(i).length != 0) {
				c = c + list.get(i)[17];
			}
		}

		return c;
	}

	// 获得饲喂站总数
	public int getZhanCout() {
		int c;
		c = new XiaoqunyangDao(mContext).selectAll().size();
		return c;
	}

	// 刷新当天饲喂量
	public void send() throws ParseException {
		// ------20分钟内收到过数据的站不再查询
		// 获得20分钟内未收过数据的饲喂站集合
		ArrayList<XiaoQunYnag> yuan = new XiaoqunyangDao(mContext).selectAll();
		ArrayList<XiaoQunYnag> list = new ArrayList<XiaoQunYnag>();
		SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd HH:mm:ss");
		for (int i = 0; i < yuan.size(); i++) {
			long y = sdf.parse(yuan.get(i).getNowLogRedtime()).getTime();
			long now = System.currentTimeMillis();
			if ((now - y) > (20 * 60 * 1000)) {
				list.add(yuan.get(i));
			}
		}

		// 发送查询命令，并记录查询时间
		for (int i = 0; i < list.size(); i++) {
			Register.getRegister().server.send((byte) 0x38, list.get(i)
					.getUid());
			new XiaoqunyangDao(mContext).updataNowSendTime(list.get(i).getUid(),
					sdf.format(new Date()));
		}
	}

	// 加载数据
	public List<HashMap<String, Object>> getData() throws ParseException {
		List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
		List<HashMap<String, Object>> list2 = new ArrayList<HashMap<String, Object>>();
		ArrayList<XiaoQunYnag> list1 = new XiaoqunyangDao(mContext).selectAll();
		SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd HH:mm:ss");
		for (int i = 0; i < list1.size(); i++) {
			if (list1.get(i).getNowLog().length != 0) {
				HashMap<String, Object> item = new HashMap<String, Object>();
				item.put("id", "");
				item.put("zhanId",
						"" + Register.getInt(list1.get(i).getNowLog()[4]) + "-"
								+ Register.getInt(list1.get(i).getNowLog()[5]));
				int c = 0;
				if (list1.get(i).getData().length != 0) {
					c = list1.get(i).getData()[17];
				}
				item.put("muhzuzongshu", "" + c);
				if (list1.get(i).getNowSendcout() > 3) {
					item.put("muzhu_shuliang", "" + "失联");// -------------------没考虑清楚
				} else if ((sdf.parse(list1.get(i).getNowLogSendtime())
						.getTime() - sdf.parse(list1.get(i).getNowLogRedtime())
						.getTime()) > 20 * 60 * 1000) {
					item.put("muzhu_shuliang", "" + "数据未更新");
				} else {
					item.put("muzhu_shuliang",
							"" + Register.getInt(list1.get(i).getNowLog()[6]));
				}
				list.add(item);
			} else {
				//一次都没有收到数据的情况
				HashMap<String, Object> item = new HashMap<String, Object>();
				item.put("id", "");
				item.put("zhanId", "未获得数据");
				int c = 0;
				item.put("muhzuzongshu", "" + c);
				item.put("muzhu_shuliang",
						"失联");
				list2.add(item);
			}
		}
		// 排序

		for (int i = 0; i < list.size(); i++) {
			HashMap<String, Object> item = list.get(i);
			for (int j = i + 1; j < list.size(); j++) {
				String[] s2 = ((String) list.get(j).get("zhanId")).split("-");
				String[] s1 = ((String) item.get("zhanId")).split("-");
				if (Integer.parseInt(s1[0]) > Integer.parseInt(s2[0])) {
					list.set(i, list.get(j));
					list.set(j, item);
					item = list.get(i);
				}
				if (Integer.parseInt(s1[0]) == Integer.parseInt(s2[0])) {
					if (Integer.parseInt(s1[1]) > Integer.parseInt(s2[1])) {
						list.set(i, list.get(j));
						list.set(j, item);
						item = list.get(i);
					}
				}
			}

		}

		for (int i = 0; i < list2.size(); i++) {
			list.add(list2.get(i));
		}
		return list;
	}

}
